#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int str2float(char ch[],float * final)
{
	
	int i;
	for(i=0;ch[i];i++)
	{
		if(!((ch[i]>='0'&&ch[i]<='9')||ch[i]=='.'))
			return 0;
	}
	sscanf(ch,"%f",final);
	return 1;
}
int GetMMA(float in[],float *max,float *min,float *ave)
{
	*min = *max = in[0];
	*ave = 0;
	int i=1;
	for(i=0;in[i]>=0;i++)
	{
		*ave += in[i];
		if(in[i] < *min)
			*min=in[i];
		else if(in[i] > *max)
			*max=in[i];
	}
	*ave /= i;
	return 1;
}

int GetCOLk(char in[],int k,char dst[])
{
	int i=0,j=1,p;
	char c,c1;
	while(in[i])
	{
		c1=in[i++];
		c=in[i];
		c!=' ' && c1==' ' && j++;
		if(j==k && c1!=' ')
		{
			for(p=0;dst[p]!='\0';p++);
			dst[p]=c1;
			dst[p+1]='\0';
		}
	}
	return 1;
}

int file2float(float cpu[],char cmd[],int pid[])
{
	int i=1,j,l=0;
	char c,c1,ch[20],cpid[20],buf[1024];
	FILE *fp;
	fp = popen(cmd,"r");
	c=getc(fp);
	do{
		j=0;
		strcpy(ch,"");
		strcpy(cpid,"");
		while(c!='\n'&&j<1023)
		{
			buf[j]=c;
			j++;
			c=getc(fp);
		}
		buf[j]='\0';
		GetCOLk(buf,3,ch);
		GetCOLk(buf,2,cpid);
//		puts(cpid);
		if(c!=EOF&&str2float(ch,&cpu[l]))
		{
			pid[l]=atoi(cpid);
			l++;
		}
		c=getc(fp);
	}while(c!=EOF);
	cpu[l]=-1;
	pid[l]=-1;
	pclose(fp);
	return 0;
}

int intlen(int in)
{
	int i=0;
	while(in)
	{
		i++;
		in/=10;
	}
	return i;
}

int i2str(int in,char dst[])
{
	
	return 0;
}
